#ifndef __LIB_AGORA_ADMIN_IUSERMANAGER_H__
#define __LIB_AGORA_ADMIN_IUSERMANAGER_H__

#include "IUser.h"

class	IUserManager
{
public:
	virtual IUser*			GetUser(unsigned int id) = 0;
	virtual IUser*			GetUser(std::string& login) = 0;
	virtual unsigned int	LoadUser(void) = 0;
	virtual IUser*			LoadUser(const unsigned int id) = 0;
	virtual unsigned int	UnloadUser(void) = 0;
	virtual unsigned int	UnloadUser(const unsigned int) = 0;
	virtual IUser*			CreateUser(const std::string&, const std::string&) = 0; //utile de renvoyer le user mais plus de retour d'error ... a voir comment gerer les erreurs dans la lib
	virtual unsigned int	DeleteUser(void) = 0;
	virtual unsigned int	DeleteUser(const unsigned int id) = 0;
	virtual bool			UserExists(const std::string& login) = 0;
};

#endif